Cycle Processing Threads
These are the main processing threads, responsible for handling activities in the system. In Coherence, processing threads are defined using Fixed-thread/Cached-thread executors.
Instead, the total number of processing threads should be planned based on the capacity of each individual node, rather than forcing an even split. For example, if 4 cycle agents are running, you might configure each JVM with its own appropriately sized executor (e.g., 10-30 threads), depending on available CPU and memory.
You can scale vertically by increasing the number of threads per node — but only if there are sufficient resources (CPU cores, memory) to support them without causing contention. Too many threads on a single JVM can lead to synchronization overhead, CPU thrashing, and scheduling bottlenecks, especially during high-volume or burst workloads.
Therefore, while vertical scaling may offer short-term improvements, horizontal scaling — adding more nodes to the cluster with balanced thread pools — is the preferred long-term strategy. It improves resilience, distributes load more evenly, and aligns better with Coherence’s distributed processing model.
Best Practice: Tune each node’s executor size based on its hardware capacity, and scale out the cluster when more processing power is needed. Coherence handles distribution of tasks across members, so a horizontally scaled grid with balanced resources will perform better and scale more predictably under heavy workloads.